iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0
自我挑戰組

自我挑戰系列 第 2

#01 k8s 基本組成

  • 分享至 

  • xImage
  •  

Kubernetes(K8s) 是目前流行的容器管理平台之一,為應用程式的容器化提供了高度可擴展的解決方案,將容器的部署、維護和擴展自動化。在學習 Kubernetes 時,首先理解其基本架構和核心元件是非常重要的。

  1. Kubernetes Cluster 架構
    Kubernetes Cluster 是由多台機器組成的集群,每台機器稱為 "節點"。Kubernetes 以主從式架構運作,其中包括以下基本組成 :

1.1 基本組成
K8s cluster 由多個節點 (Nodes) 組成,分為主節點 (Master Node) 和工作節點 (Worker Node) 。

  • 主節點 (Master Node) 主節點是K8s集群的大腦,負責管理和控制集群中的所有操作。它包含三個主要組件 : API Server、Controller Manager和Scheduler。
  • 工作節點 (Worker Node) : 工作節點是集群的工作馬,負責運行容器應用程序。它包括容器運行環境 (如Docker) 、Kubelet、Kube Proxy等組件。
  1. 基本元件
  • API Server : 這是K8s集群的接口,允許用戶和管理工具與集群通信。它接收REST請求,並將其轉發到相關的組件進行處理。
  • Controller Manager : 負責維護系統狀態,如副本控制器 (Replication Controller) 、節點控制器 (Node Controller) 等。它確保系統中的期望狀態和實際狀態一致。
  • Scheduler : 負責將新的容器部署到工作節點,考慮資源需求和其他約束條件,以實現最佳性能和高可用性。
  • Kubelet : 在每個工作節點上運行,負責管理該節點上的容器。它接收API Server的指令,確保容器按照規定運行。
  • Kube Proxy : 負責網絡代理,維護工作節點上的網絡規則,實現內部和外部流量的路由。

其中還可以細分如下 :

2.1 控制平面 (Control Plane) : 控制平面負責管理整個 Kubernetes 群集,它包括以下核心組件 :

  • kube-apiserver : 提供 Kubernetes API 的前端,是所有指令和配置更改的入口點。
  • etcd : 一個強一致性的鍵值存儲庫,用於保存所有群集的配置信息和狀態。
  • kube-scheduler : 負責決定將 Pod 調度到哪個節點上,基於資源需求和其他標準。
  • kube-controller-manager : 包含多個控制器,負責監控和維護系統的狀態。

2.2 節點 (Nodes) : 節點是實際運行容器的機器,每個節點上運行著以下關鍵元件 :

  • kubelet : 與 control plane 通信,確保節點上運行的容器與期望的狀態一致。
  • kube-proxy : 負責維護網絡規則,使服務和 Pod 可以正確通信。
  • Container Runtime : 通常使用 Docker 或 Containerd 來運行容器。
  1. Kubernetes Cluster 的基本元件

3.1 Pod : Pod 是 Kubernetes 中最小的可部署單位,它可以包含一個或多個容器。容器在同一 Pod 中共享相同的網絡命名空間,這意味著它們可以輕鬆通信,並共享存儲卷。
3.2 Deployment : Deployment 是一個控制器,用於定義應用程式的期望狀態,並確保群集中運行的 Pod 數量與期望的一致。
3.3 Service : Service 定義了一個稳定的網絡端點,用於公開應用程式,即使 Pod 重啟或擴展,Service 仍然可用。
3.4 ConfigMap 和 Secret : 這些資源允許您將組態資料從應用程序的程式碼中分離出來,使組態更易於管理。
3.5 Namespace : Namespace 用於將群集分為多個虛擬群集,每個 Namespace 具有獨立的資源和許可權。
3.6 Ingress : Ingress 允許將外部流量路由到群集中的服務,它可以實現高級路由和 SSL 終止等功能。

理解 Kubernetes Cluster 的架構和基本元件是學習 Kubernetes 的關鍵一步。


上一篇
#00 yaml
下一篇
#02 Pod
系列文
自我挑戰9
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言